Add prefetch support for Windows on X64 and AArch64#56
Closed
raneashay wants to merge 1 commit intomicrosoft:mainfrom
Closed
Add prefetch support for Windows on X64 and AArch64#56raneashay wants to merge 1 commit intomicrosoft:mainfrom
raneashay wants to merge 1 commit intomicrosoft:mainfrom
Conversation
This patch largely mimics the prefetch support for Linux on X64 and AArch64 to apply for Windows. One key change, however, is that instead of using inline assembly, which isn't supported by MSVC, this patch uses compiler builtins (`__prefetch2()` on AArch64 and `_mm_prefetch()` on X64).
raneashay
commented
Mar 31, 2026
|
|
||
| inline void Prefetch::read (const void *loc, intx interval) { | ||
| if (interval >= 0) { | ||
| __prefetch2((const char*) loc + interval, /* PLD + L1 + KEEP */ 0); |
Author
There was a problem hiding this comment.
Confirm whether loc and interval should be added and whether this initiates the prefetch or ensures that it is completed before the call returns.
raneashay
commented
Mar 31, 2026
| #include <xmmintrin.h> | ||
|
|
||
| inline void Prefetch::read (const void *loc, intx interval) { | ||
| _mm_prefetch((const char*) loc + interval, _MM_HINT_T0); |
Author
There was a problem hiding this comment.
Consider adding the condition interval >= 0.
Author
|
Create a JMH benchmark to demonstrate improvement. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This patch largely mimics the prefetch support for Linux on X64 and
AArch64 to apply for Windows. One key change, however, is that instead
of using inline assembly, which isn't supported by MSVC, this patch uses
compiler builtins (
__prefetch2()on AArch64 and_mm_prefetch()onX64).